package com.br.aiops.receiver.es.config.db;

import com.br.aiops.receiver.es.config.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

@Service
public class ConfigService {

    @Value("${env.profile}")
    private String env;

    @Autowired
    private ConfigRepository configRepository;

    public List<Config> getConfigs() {
        return configRepository.findAll(env).stream()
                .map(configDTO -> Config.builder()
                        .id(configDTO.getId())
                        .service(configDTO.getService())
                        .errorCode(configDTO.getErrorCode())
                        .message(configDTO.getMessage())
                        .method(configDTO.getMethod())
                        .endpoint(configDTO.getEndpoint())
                        .body(configDTO.getBody())
                        .resultType(configDTO.getResultType())
                        .resultFields(configDTO.getResultFields())
                        .groupField(configDTO.getGroupField())
                        .computeType(configDTO.getComputeType())
                        .computeField(configDTO.getComputeField())
                        .filterOperator(configDTO.getFilterOperator())
                        .filterValue(configDTO.getFilterValue())
                        .cron(configDTO.getCron())
                        .lastMinutes(configDTO.getLastMinutes())
                        .env(configDTO.getEnv())
                        .useStatus(configDTO.getUseStatus())
                        .updateTime(configDTO.getUpdateTime())
                        .build()).collect(Collectors.toList());
    }
}
